package com.kuzan.autocloud.common.model.form;

import com.kuzan.autocloud.common.model.form.link.FormSyeneryLink;
import lombok.Data;

import javax.persistence.Column;
import javax.persistence.Lob;
import javax.persistence.MappedSuperclass;

/**
 * <p>Description: </p>
 *
 * @author kuzank
 */
@Data
@MappedSuperclass
public abstract class AbsFieldDefine extends FormSyeneryLink {

    /**
     * 对应数据库表单字段的名称
     */
    @Column
    private String columnname;
    /**
     * 表单字段类型 & 报表字段类型
     */
    @Column(length = 32)
    private String fieldtype;
    /**
     * 目标ID：枚举 & 关联选择项
     */
    @Column(length = 32)
    private String targetid;
    /**
     * 是否有多个值
     */
    @Column(columnDefinition = "bit(1) default 0")
    private boolean multi = false;

    /******************* 通用属性 ********************/
    /**
     * 帮助信息
     */
    @Lob
    @Column(name = "optionalHelp", columnDefinition = "TEXT")
    private String optionalHelp;
    /**
     * 输入框内的描述文件
     */
    @Lob
    @Column(columnDefinition = "TEXT")
    private String placeholder;

    /******************* 文本 & 数字 ********************/
    /**
     * 前置标签
     */
    @Column
    private String addonbefore;
    /**
     * 后置标签
     */
    @Column
    private String addonafter;

    /******************* 编辑器 ********************/
    /**
     * 代码类型：javascript,groovy,sql
     */
    @Column(length = 32)
    private String codetype;
}
